/**
 * Lexical Analyzer code
 */
package lexico;


/**
 * @author rifiorelli
 * 
 */
public class Lexico {

	public StringBuffer cadeia;
	
/**
 * Recebe uma cadeia valida e passa pro proximo
 * @param cadeia
 */
	public Lexico(StringBuffer cadeia) {
		this.cadeia = new StringBuffer();
		this.cadeia = cadeia;

	}
	
	
	/**
	 * Recebe a validacao se eh necessario deletar o char lido e devolve o valor
	 * em ASCII do caractere
	 * 
	 * @param delete
	 *            recebe o valor e deleta o char, se necessario
	 * @return char valor em ASCII do caractere
	 * @throws Exception 
	 */
	public String getNextChar(boolean delete) throws RuntimeException {
		String str = null;
		if (cadeia.length() > 1) {
			str = cadeia.substring(0, 1);
			if (delete)
				cadeia.delete(0, 1);
		}
		else {
			str = "/";
		}
		return str; // pega valor ASCII do caractere
	}
	
	/**
	 * Verifica se existe mais caracteres
	 * @return
	 */
	public boolean hasNextChar(){
		if (cadeia.length() > 1){
			return true;
		}
		return false;
	}
	
//	private boolean isPalavraReservada(String str) {
//		if (str.equals("K") || str.equals("k") || str.equals("s") || 
//				str.equals("S") || str.equals("I") || 
//				str.equals("1") || str.equals("0") || 
//				str.equals("*") || str.equals("`") || 
//				str.equals(")") || str.equals("(") ) {
//			return true;
//		}
//		return false;
//	}
	
}
